pcb software development pcb design software development pcb assembly circuit embedded embedded systems electronics java linux pcb layout design